#!/usr/bin/env python3
# coding:utf-8

import os

# 绝对路径
os.path.dirname("/usr/bin/sh")  # 获取路径 '/usr/bin'
os.path.basename("/usr/bin/sh") # 获取文件名 'sh'
os.path.splitext("demo.py")     # ('demo', '.py')
os.path.realpath("/usr/bin/sh") # '/usr/bin/bash'
# 判断绝对路径
os.path.isabs("demo.py")        # False
# 获取相对路径
os.path.relpath("/usr/bin/sh")  # '../../../../../../../usr/bin/sh'
os.path.relpath("/usr/bin/sh", "/home")  # '../usr/bin/sh'


# 分割路径,文件名
os.path.split("/usr/bin/sh")    # ('/usr/bin', 'sh')
# 拼接文件名
os.path.join("/usr","bin","bash")   # '/usr/bin/bash'


# 获取后缀
os.path.splitext("demo.py")     # ('demo', '.py')
os.path.splitext("test")        # ('test', '')
os.path.splitext("/usr/bin/sh") # ('/usr/bin/sh', '')
os.path.splitext("/usr/bin/1.sh")   # ('/usr/bin/1', '.sh')


# 判断文件类型
os.path.isfile("demo.py")   # True
os.path.isdir("demo.py")    # False
os.path.islink("link_demo.py")  # True
os.path.ismount("/var")     # False
# os.path.isdevdrive("/dev/tty") -->linux 不支持

# 判断文件存在
os.path.exists("/usr/bin/sh")       # True
os.path.lexists("/usr/bin/bash")    # True


# 获取文件时间戳
os.path.getatime("demo.py")     # 访问时间
os.path.getmtime("demo.py")     # 修改时间
os.path.getctime("demo.py")     # node最后修改时间: chown,chmod,文件名,路径

# 获取文件大小
os.path.getsize("demo.py")      # 21

# 判断文件内存是否相同
os.path.samefile("/usr/bin/sh","/usr/bin/bash") # True
os.path.samefile("demo.py","link_demo.py")      # True
file_stat = os.stat("demo.py")
link_stat = os.lstat("link_demo.py")
os.path.samestat(file_stat,link_stat)           # False
